面试题-Java API 篇
转载请注明出处,点击此处 查看更多精彩内容
最近得空,就去一些招聘网站做了些面试题,为方便大家共同学习,Java API 相关的就在这篇博客里记录一下,以后有空会持续更新,大家有更好的答案也可以留言告诉我。
1. HashMap 和 Hashtable 的区别
Hashtable继承自Dictiionary而HashMap继承自AbstractMap。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。Hashtable使用contains方法去查看是否包含某一对象,HashMap使用containsvalue和containsKey。- 最大的不同是,
Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步(Collections.synchronizedMap)。 
2. Collection 和 Collections 的区别
Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection 接口在 Java 类库中有很多具体的实现。Collection 接口的意义是为各种具体的集合提供了最大化的统一操作方式;
Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于 Java 的 Collection 框架。
3. sleep() 和 wait() 有什么区别?
sleep() 方法是属于 Thread 类中的。而 wait() 方法是属于 Object 类中的。
sleep() 方法导致了程序暂停执行指定的时间,让出 cpu 该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用 sleep() 方法的过程中,线程不会释放对象锁。
而当调用 wait() 方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用 notify() 方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。
